
# 序列的通用操作
"""
包括 ：
    索引 ，列表 ，元组 ，字符串都支持索引 ，格式：变量名[index]
    切片 : 列表 ，元组 ，字符串都支持索引 , 格式 ：seq[start:end:step]
    相加，相乘
    包含
"""

lst = [1,23,56,23,232]
tp = (1,23,56,23,232)
my_str = "abcdefg"

print("获取列表中的第2个元素:",lst[1])
print("获取元组中的第2个元素:",tp[1])
print("获取字符串中的第2个元素:",my_str[1])

print("获取列表中的第2个元素:",lst[-4])
print("获取元组中的第2个元素:",tp[-4])
print("获取字符串中的第2个元素:",my_str[-6])


# 切片
lst = ['red','green','blue','black','gold','orange']
print("获取第2~5个元素:",lst[1:5:1])
print("获取奇数的元素:",lst[0:6:2])

print("获取第2~5个元素:",lst[1:5:])       # 省略了step
print("获取奇数的元素:",lst[:6:2])        # 省略了start
print("获取奇数的元素:",lst[0::2])         # 省略了end
print("获取奇数的元素:",lst[::2])
print("获取所有元素:",lst[::])


# 相加 ：+ ,相乘 ： *
alst = [1,2]
blst = [3,4]
clst = alst + blst
print(clst)

astr = "hello"
bstr = " world"
print(astr+bstr)

atp = (1,2)
btp = (3,4)
print(atp + btp)

dlst = alst * 3
print(dlst)

print(astr * 2)
print("="*30)

# 检查元素 ：in

tp2 = ('red','green','blue','gold')
print('blue' in tp2)
print('black' in tp2)

dct = {'a':1,'c':2}
print('a' in dct)
print('b' in dct)

"""
支持方法 
1.len(seq)      : 查看序列的长度 (重点)
2.max(seq)      : 查看序列中的最大值，同种数据类型的比较
3.min(seq)      : 查看序列中的最小值，同种数据类型的比较
4.sum(seq)      : 对序列中的元素求和，前提必须是数字
5.sorted(seq)   : 对序列中的元素进行排序
6.reversed(seq) : 对序列进行翻转
7.enumerate(seq) : 可以获取索引和值         (重点)
8.list(seq)       : 创建或转化其它类型为列表  (重点)
9.str(seq)          : 创建或转化其它类型变为字符串  (重点)
10.tuple(seq)       : 创建或转化为元组
11.dict(seq)           : 创建或转化为字典
"""

print("="*30)
tp3 = ('red','green','blue','gold')
tp4 = (1,2,3,4)
lst3 = ['red','green','blue','gold']
print("查看tp3的长度:",len(tp3))
print("查看tp3的最大值:",max(tp3))
print("查看tp3的最小值:",min(tp3))
print("对tp4进行求和:",sum(tp4))

print("对tp3进行排序:",sorted(tp3))
print("tp3:",tp3)

print("对tp3进行翻转:",reversed(tp3))
for x in reversed(tp3):
    print(x,end=" ")
print("tp3:",tp3)

print("对lst3进行排序:",sorted(lst3))
print("lst3:",lst3)

for key,value in enumerate(tp3):        # tp3 = ('red','green','blue','gold')
    print("key:",key,"===","value:",value)

for key,value in enumerate(dct):        # tp3 = ('red','green','blue','gold')
    print("key:",key,"===","value:",value)

print("="*30)
print("将元组转化为列表:",list(tp3))
lst4 = list(('red',2))
print(lst4)
print("将字符串转化为列表:",list("abcd"))
print("将字典转化为列表:",list({'a':1,'b':2}))

print("把元组转化为字符串：",str((1,23,3)))
print("把列表转化为字符串：",str([1,23,3]))
print("把字典转化为字符串：",str({'a':1,'b':2}))
print("="*30)

print("把字符串转化为元组:",tuple("abcd"))
print("把字典转化为元组:",tuple({'a':1,'b':2})) # dct.keys()

x = zip(('a',1),('b',2))
print("把字符串转化为字典：",)
for key,value in x:
    print("key:",key,"value",value)